PSOC C3 설정


easyDSP와 연결

easyDSP는 MCU가 제공하는 부트롬 DFU 기능을 사용하여 플래시 프로그래밍을 지원합니다. 따라서 플래시 프로그래밍을 위해서는 헤더 RX, TX 핀은 각각 P8.1, P8.3핀에 연결되어야 합니다.
48핀 소자를 제외하고, P8.1, P8.3은 각각 SCB5.UART.RX, SCB5.UART.TX의 기능을 수행합니다. 따라서 easyDSP의 모니터링 작업은 SCB5를 통해 이루어지게 됩니다.
만약 어떠한 사유에서 SCB5를 사용할 수 없을 경우 (예를 들어 48핀 소자의 경우 SCB5가 없음), 다른 SCB를 사용할 수 있지만, 이 경우 모니터링만 지원되며 플래시 프로그래밍은 지원되지 않으며, 헤더 RX, TX핀은 해당 SCB에 할당되는 핀에 연결해야 합니다.

 

기타 주의 사항 하기 참조 바랍니다.
- easyDSP cable이 연결되는 5x2 header의 전원핀(#4)은 3.3V 연결
- easyDSP -RESET신호와 MCU /XRES 신호사이에 리셋 IC같은 회로가 삽입된다면, 삽입된 회로는 -RESET신호를 0.5초내에 /XRES에 전달해야 함.
- RX, TX 신호선에 풀업 저항을 사용한다면 저항값이 수 KOhm이상이 되어야 함
- 사용자 프로그램에서 부트핀 P2.2, P2.3을 사용할 수 있습니다.

Device Configurator 설정

easyDSP는 device configurator 기반 생성된 코드를 사용합니다. 하기에서는 device configurator 5.3기준으로 설명드립니다.

먼저 Peripherals 탭에서 SCB5를 선택한 후, 이름을 scb_ez로 변경하고 UART 모드를 선택합니다.


해당 SCB의 파라미터를 아래와 같이 설정합니다.
보드레이트는 사용자가 적절히 선정합니다. 단, easyDSP 프로젝트 설정값과 동일해야 합니다.
8 bit data, 1 stop bit, no parity bit의 데이타 규격을 사용하며, SCB5를 사용하는 한 핀 P8.1, P8.3을 사용합니다.
FIFO 트리거 레벨은 RX의 경우 127, TX의 경우 0으로 설정하며, API 모드는 Low Level를 사용합니다.
인터럽트는 RX FIFO not Empty만을 사용합니다.
기타 부분은 하기 그림 참조 바랍니다.


 
 

그리고 Peripheral-Clocks 탭에서 해당 SCB의 클럭을 설정합니다. SCB5를 사용한다면 하기를 참조하세요. 보드 레이트 등의 설정에 따라 파라미터 값이 달라질 수 있습니다.


마지막으로 파일을 저장합니다. 

easyDSP 관련 함수 호출

easyDSP 통신용 파일 (easyPSOC_C3.h, easyPSOC_C3.c)을 사용자 프로젝트에 포함하시기 바랍니다. 해당 파일은 easyDSP 프로그램이 인스톨된 폴더에서 \source\PSOC에서 찾을 수 있습니다.
먼저 main.c 상단에 easyPSOC_C3.h를 include하여 주시고, main 함수에서  각종 초기화가 진행된 이후, 적절 부분에 easyDSP_init() 함수를 호출하시기 바랍니다. 이로써, 변수 모니터링이 가능하게 됩니다.


플래시 프로그래밍 관련 설정

1. edgeprotecttools.exe를 사용하여 MCU 부트롬 DFU 기능을 활성화
부트롬 DFU 기능을 사용하여 플래시 프로그래밍을 하는데 이 기능은 제품 출하시에 비활성화되어 있습니다. 하기를 참조하여 이를 활성화시켜야 합니다.

- 타켓 보드의 디버거를 PC에 연결합니다. 디버거는 CMSIS-DAP를 지원해야 합니다.
- Command Prompt를 실행하여 디렉토리를 사용자 프로젝트 폴더로 이동합니다.
- Command Prompt에서 "C:\Infineon\Tools\ModusToolbox-Edge-Protect-Security-Suite-1.4\tools\edgeprotecttools\bin\edgeprotecttools.exe -t psoc_c3 init"를 실행합니다. 사용자 프로젝트 폴더에 keys, logs, policy, packets의 폴더가 생성됩니다. edgeprotecttools가 설치된 폴더에 따라 실행문구가 변경될 수 있습니다.
-  Command Prompt에서 "C:\Infineon\Tools\ModusToolbox-Edge-Protect-Security-Suite-1.4\tools\edgeprotecttools\bin\edgeprotecttools.exe set-ocd --name openocd --path C:\Infineon\Tools\ModusToolboxProgtools-1.4\openocd"를 실행합니다. openocd가 설치된 폴더에 따라 실행 문구가 변경될 수 있습니다.
- policy 폴더내 policy_oem_provisioning.json 파일을 텍스트에디터로 열어 "dfu_enable"의 "value"를 true로 변경, 저장합니다.
- Command Prompt에서 "C:\Infineon\Tools\ModusToolbox-Edge-Protect-Security-Suite-1.4\tools\edgeprotecttools\bin\edgeprotecttools.exe  -t psoc_c3 provision-device -p policy/policy_oem_provisioning.json"를 수행합니다. "Programming complete" 메시지를 확인합니다. 이 이후 발생하는 오류 메시지 "ERROR : Unable to read current LCS value"는 무시합니다.

이로써 부트롬 DFU가 활성화됩니다. 추가 사항은 아래 링크를 참조하세요.
https://github.com/Infineon/mtb-example-ce240782-fwu-bootrom-dfu/blob/master/README.md
https://github.com/Infineon/edgeprotecttools/blob/master/docs/README_PSOCC3.md

2. IDE에서 Hex 파일 생성
easyDSP는 hex 파일을 사용하여 플래시 프로그래밍을 수행합니다. 매 사용자 프로그램의 컴파일마다 출력파일과 동일한 이름의 hex 파일이 (출력파일 이름.hex), 동일한 폴더에 생성될 수 있도록 IDE를 설정하여야 합니다.